void dfs(struct TreeNode* root, int* pre, int* ans) 
{
    if (root == NULL) 
    {
        return;
    }
    dfs(root->left, pre, ans);
    if (*pre == -1) 
    {
        *pre = root->val;
    } 
    else 
    {
        *ans = fmin(*ans, root->val - (*pre));
        *pre = root->val;
    }
    dfs(root->right, pre, ans);
}

int getMinimumDifference(struct TreeNode* root)
{
    int ans = INT_MAX, pre = -1;
    dfs(root, &pre, &ans);
    return ans;
}

